package com.alibaba.citrus.cr.sales.plan.api.salesplan.adjust;

import com.alibaba.citrus.cr.sales.plan.dto.api.request.BatchUpdateLineStatusRequest;
import com.alibaba.citrus.cr.sales.plan.dto.api.request.EditSalesPlanAdjustDetailRequest;
import com.alibaba.citrus.cr.sales.plan.sdo.SalesPlanAdjustDetailSDO;
import com.alibaba.lattice2.epoch.meshflow.model.annotation.MeshFlowService;
import com.alibaba.lattice2.epoch.sdk.model.Result;

import java.util.List;

/**
 * @author yuhailin
 * @description:
 * @date 2021-10-25 16:15
 */
@MeshFlowService(apps = {"bc_order"}, name = "salesPlanAdjustDetailWriteService")
public interface SalesPlanAdjustDetailWriteService {

    /**
     * 批量添加调整明细
     *
     * @param salesPlanAdjustDetailSDOList
     * @return
     */
    Result<String> batchCreateSalesPlanAdjustDetail(List<SalesPlanAdjustDetailSDO> salesPlanAdjustDetailSDOList);

    /**
     * 编辑明细  - 失去焦点保存
     *
     * @param editSalesPlanAdjustDetailRequest
     * @return
     */
    Result<SalesPlanAdjustDetailSDO> editSalesPlanAdjustDetail(EditSalesPlanAdjustDetailRequest editSalesPlanAdjustDetailRequest);

    /**
     * 批量删除调整明细(状态变更)
     *
     * @param batchUpdateLineStatusRequst
     * @return
     */
    Result<Integer> batchUpdateAdjustDetailStatus(BatchUpdateLineStatusRequest batchUpdateLineStatusRequst);

    /**
     * 批量导入添加调整明细
     *
     * @param salesPlanAdjustDetailSDOList
     * @return
     */
    Result<String> batchImportCreateSalesPlanAdjustDetail(List<SalesPlanAdjustDetailSDO> salesPlanAdjustDetailSDOList);
}
